﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using XF.Meeting.Entity.dbEntity;
using XF.Meeting.Entity.DTO;
using XF.Meeting.Entity.Query;

namespace XF.Meeting.IDal
{
   public interface IUserDAL
    {
        Task<bool> InsertUserOrgForOrgcalendarsAuth(UserInfo entity, out string strError);
        Task<bool> DeleteUserOrgForOrgcalendarsAuth(UserInfo entity, out string strError);
        Task<Tuple<DataTable, string>> Login(string UserName, string UserPassword);
        Task<Tuple<DataTable, string>> Login(string phone);
        Task<Tuple<bool, string>> UpdatePassword(string username, string password);
        Task<(bool,int)> InsertUserInfo(UserInfo entity, out string strError);
        Task<bool> UpdateUserInfo(UserInfo entity, out string strError);
        Task<bool> DeleteUserInfoByID(UserInfo entity, out string strError);
        Task<Tuple<DataTable, DataTable,string>> GetUserInfoByID(UserQuery query, out string strError);
        Task<Tuple<DataTable, int, int>> GetUserInfoListByRID(UserQuery query, out string strError);
        Task<Tuple<DataTable, int, int, bool>> GetUserInfoListByKey(UserQuery query, out string strError);
        Task<Tuple<DataTable, int, int>> GetUserInfoList(UserQuery query, out string strError);
        Task<Tuple<DataTable, string>> GetUserIntegral(UserQuery query, out string strError);
        Task<bool> UpdateUserIntegral(UserIntegral entity, out string strError);
        Task<bool> UpdateUserRegional(UserInfo entity, out string strError);
        Task<Tuple<DataTable, int, int, bool>> GetWhiteList(UserQuery query, out string strError);
        Task<bool> InsertUserToWhiteList(int ID, out string strError);
        Task<bool> UpdateToWhiteListUserMsg(WhiteListUser entity, out string strError);
        Task<bool> UpdateToWhiteListUserSchedule(WhiteListUser entity, out string strError);
        Task<bool> DeleteToWhiteListUser(WhiteListUser entity, out string strError);
    }
}
